package com.chenhs.oop.study.File类的基本用法;

import com.sun.deploy.util.StringUtils;
import org.junit.Test;

import java.io.File;
import java.io.IOException;

/**
 * @className: com.chenhs.oop.study.File类的基本用法-> 文件基本用法
 * @description: 这个类是做做什么得吖，小朋友？ 获取文件基本信息 （名称，大小，绝对路径，父路径，是否存在，是否为文件，是否为文件夹）
 * @author: chenhs
 * @createDate: 2022-12-10 9:40
 * @version: 1.0
 */
public class File2_获取文件基本信息 {
    @Test
    public void getFlieInfor() {
        //名称，大小(单位字节)，绝对路径，父路径，是否存在，是否为文件，是否为文件夹。
        File file = new File("D:\\temp\\test.txt");
        System.out.println(file.getName());
        System.out.println(file.length());
        System.out.println(file.getAbsolutePath());
        System.out.println(file.getParent());
        System.out.println(file.exists());
        System.out.println(file.isFile());
        System.out.println(file.isDirectory());
    }

    //    创建目录删除目录（目录必须为空）
    @Test
    public void createDirectory() {
        File file = new File("D:\\temp\\temp1\\temp");
        if (file.exists()) {
            file.delete();
            System.out.println("目录已删除。");
        } else {
            file.mkdirs();
            System.out.println("目录已创建。");
        }
    }

    // 创建文件
    @Test
    public void createFile() throws IOException {
        File file = new File("D:\\temp\\temp1\\temp");
        if (!file.exists()) {
            file.mkdirs();
        }
        File file1 = new File(file, "test.txt");
        if (file1.exists()) {
            file1.delete();
            System.out.println("文件已经存在，哦那是刚刚，现在文件被我删除了。");
        } else {
            if (file1.createNewFile()) {
                System.out.println("文件已创建。");
            } else {
                System.out.println("文件创建失败。");
            }
        }
    }

    //    递归打印一个目录
    @Test
    public void t() {
        System.out.println("--------------------指定路径文件打印开始----------------------");
        this.showDirectoy("D:\\");
        System.out.println("--------------------指定路径文件打印完毕----------------------");
    }

    public void showDirectoy(String path) {
        File file = new File(path);
        if (file.exists()) {
            // 存在
            System.out.println("path = " + file.getAbsolutePath());
            if (file.isDirectory()) {
                File[] files = file.listFiles();
                if (files != null) {
                    for (File temp : files) {
//                    遍历子目录
                        this.showDirectoy(temp.getAbsolutePath());
                    }
                }
            }
        }else {
            System.out.println("指定路径不存在。");
        }
    }

}
